let data = {
  pagenum: 1,
  pagesize: 2,
  // state:,
  // cate_id:,
};
//封装函数
function showList() {
  //获取数据并渲染
  $.ajax({
    url: "/my/article/list",
    data,
    success: (res) => {
      getPage(res.total);
      $("tbody").empty();
      $.each(res.data, (index, item) => {
        //跳转按钮传递参数,id
        $(`
        <tr>
          <td>${item.title}</td>
          <td>${item.cate_name}</td>
          <td>${item.pub_date}</td>
          <td>${item.state}</td>
          <td>
            <a href="./edit.html?id=${item.id}"   class="layui-btn layui-btn-xs">编辑</a>
            <button
              type="button"
              data-id=${item.id}
              class="layui-btn layui-btn-xs layui-btn-danger del"
            >
              删除
            </button>
          </td>
        </tr>
      `).appendTo($("tbody"));
      });
    },
  });
}
showList();
//需要嵌套,使用函数传参
function getPage(a) {
  layui.use("laypage", function () {
    let laypage = layui.laypage;
    //执行一个laypage实例
    laypage.render({
      elem: "page", //注意，这里的 test1 是 ID，不用加 # 号
      count: a, //数据总数，从服务端得到
      limit: data.pagesize,
      curr: data.pagenum,
      layout: ["limit", "prev", "page", "next", "count", "skip"],
      limits: [2, 3, 5, 10, 15],
      jump: function (obj, first) {
        // //obj包含了当前分页的所有参数，比如：
        // console.log(obj.curr); //得到当前页，以便向服务端请求对应页的数据。
        // console.log(obj.limit); //得到每页显示的条数
        //首次不执行
        if (!first) {
          //关联数值
          data.pagenum = obj.curr;
          data.pagesize = obj.limit;
          showList();
        }
      },
    });
  });
}
//渲染,将现有分类渲染到分类下拉框中
//ajax获取分类
$.ajax({
  url: "/my/category/list",
  success: (res) => {
    let str;
    $.each(res.data, (index, item) => {
      str += `<option value=${item.id}>${item.name}</option>`;
    });
    $(".cate_id").append(str);
    let form = layui.form;
    form.render();
  },
});
//点击筛选按钮
$("form").on("submit", function (e) {
  e.preventDefault();
  //修改剩下的两个参数,再调用函数
  let cate_id = $(".cate_id").val();
  let state = $(".state").val();
  //判断是否选择了
  if (cate_id) {
    data.cate_id = cate_id;
  } else {
    delete data.cate_id;
  }
  if (state) {
    data.state = state;
  } else {
    delete data.state;
  }
  //每次筛选完毕都要跳转到第一页
  data.pagenum = 1;
  //完毕调用函数
  showList();
});
//删除功能
$("tbody").on("click", ".del", function () {
  let id = $(this).data("id");
  //声明变量del 将this带进layer中
  let del = $(this);
  layer.confirm("你确定删除吗?", function (index) {
    //发送ajax请求
    $.ajax({
      url: "/my/article/delete/" + id,
      success: (res) => {
        if (res.status === 0) {
          layer.msg(
            res.message,
            {
              time: 1000, //1秒关闭（如果不配置，默认是3秒）
            },
            function () {
              //确定删除在提示后删掉对应的tbody里的tr
              del.parents("tr").remove();
              //开始判断,如果tbody里没有tr,那么就把pagenum减一,然后渲染,否则直接渲染
              if (!$("tbody").html()) {
                data.pagenum--;
                showList();
              } else {
                showList();
              }
            }
          );
        } else {
          layer.msg(res.message);
        }
      },
    });
    layer.close(index);
  });
});
